In recent years, more and more software applications are being run using smart phones and other small-footprint devices, or in cloud-based data centers, thereby reducing the need for application owners to maintain expensive application execution environments at their own premises. As application users get accustomed to easy-to-use applications, the pressure on business organizations and governmental entities to make their products and services accessible via such applications increases. Many non-business activities, such as social gatherings and the like, are also increasingly being organized and managed using phone-based or cloud-based applications.
Large well-financed organizations may be able to hire enough programming staff to develop and maintain the applications for various target environments, or outsource the work of developing and maintaining the applications. However, for a “long tail” of relatively small organizations or individuals, the costs associated with developing full-fledged applications may sometimes be prohibitive. For any given application, several different types of programming skills may be required: for example, front-end or user interface design expertise for various types of devices expected to be used for the application, back-end or database skills, security-related expertise, networking skills and so on may all be essential.
For many small organizations, making their unique service and/or product offerings accessible via easy-to-use applications may potentially lead to substantial increases in market size and/or revenue. Some small business owners may have ideas for several different types of application and channels which they would like to try out for delivering their products or services, but may lack the full depth and breadth of programming skills typically needed to develop the applications themselves. In addition, conventional application development techniques may sometimes involve longer code-build-test-deploy cycle times, which may not work well for some types of business users who wish to try out their ideas for applications. Orchestrating the creation and deployment of such applications may present a non-trivial technical and logistical challenge.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to. When used in the claims, the term “or” is used as an inclusive or and not as an exclusive or. For example, the phrase “at least one of x, y, or z” means any one of x, y, and z, as well as any combination thereof.